#ifndef __GAME_H__
#define __GAME_H__


#include "GameState.h"
#include "SceneGraph.h"

#include <boost/smart_ptr/shared_ptr.hpp>



class CGame
{
	friend class CGameStateMainMenu;
public:
	CGame();
	~CGame();

	void init();
	void run();
		
private:
	bool			m_bRunning;
	IGameState*		m_pCurrentState;
	SceneGraphPtr	m_pScene;

	
	void update();
	void changeState(IGameState* pNewState);
	
	inline bool	isRunning() { return m_bRunning; }
	inline void running(bool val) { m_bRunning = val; }
};

typedef boost::shared_ptr<CGame> GamePtr;



#endif // __GAME_H__